#ifndef DEVICETOOL_H
#define DEVICETOOL_H

#include <QObject>

extern "C" {
#include <libavdevice/avdevice.h>
#include <libavformat/avformat.h>
}

struct DeviceInfo {
    //  多媒体类型
    AVMediaType mediaType;

    AVCodecID codecId;
    //  声道数
    int numChannels;
    //  采样率
    int sampleRate;
    //  位深度
    int bitsPerSample;

    //  宽
    int width;
    //  高
    int height;

    int frame_size;

    int64_t bit_rate;

    //  格式
    int format;

    AVChannelLayout ch_layout;
};

class DeviceTool : public QObject
{
    Q_OBJECT
public:
    explicit DeviceTool(QObject *parent = nullptr);

    static DeviceInfo gainDeviceInfo(AVFormatContext *formatContext);

signals:
};

#endif // DEVICETOOL_H
